This invention relates generally to digital filtering systems and more particularly to digital filtering systems having a bandwidth which varies as a function of the time rate of change in an input signal fed to the digital filtering system.
As is known in the art, a certain class of filter design is a trade-off between the desire to remove noise accompanying an input signal and to produce an output signal which replicates the input signal itself. Thus, while a reduction in the bandwidth of the filtering system reduces noise, it also increases the response time of the filter to changes in the input signal. For example, in applications where there is a step change in the input signal, while a low pass filter will reduce any accompanying noise, as the bandwidth of the low pass filter is reduced, the filter will also increase or dampen the rise time of the output signal. One technique suggested in U.S. Pat. No. 3,755,750 to remove high frequency noise is with a filtering system which operates in one of two different modes. With such system, either the input signal is coupled through a low bandwidth filter, as when the input is slowly varying, or the low, or narrow, bandwidth filter is in effect by-passed, as when the input changes rapidly (i.e., when the input has the characteristics or a square wave or step).
As is also known in the art, digital filters are typically either Finite Impulse Response Filters (FIRs) or Infinite Impulse Response Filters (IIRs). FIG. 9 shows a block diagram of a typical FIR digital filter. The Z.sup.-1 boxes represent delay, or storage elements, with the dots at the outputs of these boxes representing the stored value (state variable). The input is shown to pass through R delay elements. The outputs of these delay blocks and the current input are then multiplied by coefficients, B.sub.0 -B.sub.R, before being summed at the output. Some of these coefficients may be zero. The output y(n) is given by EQU Y(n)=B.sub.0 .multidot.u(n)+B.sub.1 .multidot.u(n-1)+B.sub.2 u(n-2)+ . . . +B.sub.R .multidot.U(n-R)
Another type of filter is an IIR filter where the current output depends also on previous outputs. This is illustrated in FIG. 10. It is not necessary for the number of delay elements storing y(n) to equal the number of delay elements storing u(n). The output y(n) for the IIR is given by ##EQU1##
The following discussion is based around FIR filters, however it is easily extended to cover IIR filters. The overall frequency and transient response of the filter is set by the values of the coefficients and the number of delay elements present. To design a filter, the passband frequency, stopband frequency, passband ripple and stopband attenuation need to be specified. Using these specifications the number of coefficients in the filter and the values of the coefficients can then be obtained. It is typically necessary to increase the number of storage elements (R) in order to meet demanding constraints on the filter response. One such constraint that needs to be met in many applications is a desire for low bandwidth. This may be due to the need to reduce the effects of noise, since the noise outside the bandwidth of interest will be attenuated. In order to meet a low bandwidth requirement while having other characteristics such as a sharp roll-off, and little ripple in the passband or stopband, the number of coefficients needs to be increased.
Once the number of coefficients exceeds 1, there is an inherent delay in the response time of the filter to changes at its input. The old value of the input, (or a value directly related to it), is retained in the storage elements along the filter chain. When the input changes to a new value, the contents of the storage elements will initially be unaffected by the new input, so only the first component of the output summation will contain information about the new input value. The sum is therefore performed with R terms that are based on the old value of the input, and 1 term that takes into account the new input value. The next output will be based on R-1 old inputs and 2 new inputs. The output therefore only slowly tracks changes in the input, because for several outputs the output sum is more heavily weighted towards the old input value. For a symmetrical FIR filter, such as that illustrated in FIG. 9, with B.sub.0 =B.sub.R, B.sub.1 =B.sub.R-1, . . . , then after (R+1)/2 inputs at the new level the output will only be midway between the old and new values. The output will not be fully settled until R+1 inputs have occurred at the new level.
If a large number of coefficients are present, then a change in the input will take a long time to propagate to the output. This is undesirable in many circumstances because changes at the input may need to be detected as rapidly as possible. A filter with a wider bandwidth would improve the time required to respond to changes at the input, however this filter would typically have a worse noise performance due to the wider bandwidth, and would therefore be unsuitable for that particular application.